// 用户信息仓库

import {
	defineStore
} from 'pinia'
import {
	computed,
	ref
} from 'vue'

export const useUserStore = defineStore('user', () => {
	// 用户信息
	const userProfile = ref();
	// 用户token
	const userToken = ref('');
	// 用户族谱
	const userGenealogy = ref('');
	// 用户所在家庭
	const userFamily = ref('');
	// 用户所在组织
	const userParty = ref('');
	//是否需要初始化输入个人信息
	const ifNew = ref();
	//后台用户唯一标识openId 
	const openId = ref('');
	//请求头
	const UserAccessToken = ref(null)
	//状态码用于控制是否需要重新wxLogin
	const UserCodeErr = ref(1)
	// 插入用户基本信息
	const setuserInf = (val) => {
		userProfile.value = val;
		console.log(userProfile.value);
	};
	const setuserGenealogy = (val) => {
		userGenealogy.value = val;
		console.log(userGenealogy.value);
	};

	return {
		userProfile,
		userToken,
		userGenealogy,
		userFamily,
		userParty,
		setuserInf,
		setuserGenealogy,
		ifNew,
		openId,
		UserAccessToken,
		UserCodeErr
	}
}, {
	// 重要：模块必须开启持久化，才会持久化！！！
	// 注意：默认持久化，只在H5端有效，因为默认使用的是localStorage，小程序端不能使用这个API，所以需要重写存取方法，转调给UniApp的持久化方法
	// persist: true,
	persist: {
		// 默认值，就是使用localStorage
		// storage: localStorage
		// 重写存取方法，转调给UniApp
		storage: {
			getItem(key) {
				return uni.getStorageSync(key)
			},
			setItem(key, val) {
				uni.setStorageSync(key, val)
			}
		}
	}
})